//
//  HMStatusListViewModel.swift
//  Weibo-swift
//
//  Created by GD on 16/9/23.
//  Copyright © 2016年 geduo. All rights reserved.
//

import UIKit
import YYModel
//对应的视图  首页的tableView
class HMStatusListViewModel: NSObject {//多条微博
    
    lazy var statusList : [HMStatusViewModel] = [HMStatusViewModel]()

    //加载首页微博数据
    func loadData(callBack:@escaping (Bool)->())  {
        guard let accessToken = HMUserAccountViewModel.sharedUserAccountViewModel.accessToken else{
            print("accessToken 没有")
            return;
        }
        
        HMNetworkTools.sharedTools.requestStatuses(accessToken: accessToken) { (response, error) in
            if error != nil{
                print("网络异常 不是在viewModel中吗 + \(error)")
                callBack(false)
                return
            }
            
            print(response)
            
            guard let dict = response as? [String: Any] else{
                print("不是字典")
                return
            }
            
            guard let statusArray = dict["statuses"] as? [[String: Any]] else{
                print("不是字典")
                return
            }
            
            
//            var temparray = [HMStatus]()//数组初始化
//            for statusDict in statusArray{
//                let status = HMStatus(dict: statusDict)
//                
//                temparray.append(status)
//            }
            
            //yyModel  字典转模型     如果 有数组嵌套,那么需指定数组中模型的类
            let statusArr = NSArray.yy_modelArray(with: HMStatus.self, json: statusArray) as! [HMStatus]
            
            var tempArray = [HMStatusViewModel]()
            //遍历模型数组  ---给cell 传的模型是ViewModel
            for status in statusArr{
                let viewModel = HMStatusViewModel(status: status)
                tempArray.append(viewModel)
            }
            
            //记录返回的数据模型, 重新加载数据
            self.statusList = tempArray
//            self.tableView.reloadData()
            callBack(true)
        }
    }
}
